package com.zhengxing.jienci.user.service.rbac;

import com.zhengxing.jienci.user.domain.rbac.UserRole;

import java.util.Collection;
import java.util.List;

/**
 * UserRoleService
 *
 * @author philbert
 * @version 1.00
 */
public interface UserRoleService {

    /**
     * 保存用户角色
     *
     * @param userId  用户主键
     * @param roleIds 角色主键数组
     */
    void save(String userId, String[] roleIds);

    /**
     * 批量保存用户角色
     *
     * @param userRoles 用户角色集合
     */
    void saveBatch(List<UserRole> userRoles);

    /**
     * 根据用户主键集合删除用户角色
     *
     * @param userIds 用户主键集合
     */
    void deleteByUserIds(Collection<String> userIds);

    /**
     * 根据角色主键集合删除用户机构
     *
     * @param roleIds 角色主键集合
     */
    void deleteByRoleIds(Collection<String> roleIds);

    /**
     * 通过用户主键查询该用户所属的所有角色
     *
     * @param userId 用户主键
     * @return 该用户所属的所有角色
     */
    List<UserRole> findByUserId(String userId);

    /**
     * 通过角色主键查询该角色所有的用户
     *
     * @param roleId 角色主键
     * @return 该角色所有的用户
     */
    List<UserRole> findByRoleId(String roleId);

}
